package com.yunxi.service.localService.otd;

import com.yunxi.core.service.IServicePlus;
import com.yunxi.model.otd.OtdOrderCir;
import com.yunxi.otd.pojo.OtdOrderCirScheduleQueryVO;
import com.yunxi.otd.pojo.OtdOrderCirVO;
import java.util.List;

/**
 * <p>
 * CIR生产订单 服务类
 * </p>
 *
 * @author XUQI
 * @since 2019-07-15
 */
public interface OtdOrderCirService extends IServicePlus<OtdOrderCir> {


    /**
     * 查询日排程cir订单
     *
     * @param queryVO 查询VO
     * @return 分页对象
     */
    OtdOrderCirVO findCirOrderSchedule(OtdOrderCirScheduleQueryVO queryVO);

    /**
     * 分页查询月cir分周排程订单
     *
     * @param queryVO 查询VO
     * @return 分页对象
     */
    OtdOrderCirVO findMonthCirWeekly(OtdOrderCirScheduleQueryVO queryVO);

    /**
     * 根据年月查询待反馈CIR订单数量
     * @param yearMonths 年月
     */
    int findWaitCirOrderCountByYearMonth(List<String> yearMonths);


    /**
     * 根据年月删除CIR订单
     * @param year 年
     * @param weeks 周
     */
    void deleteCirOrderByYearWeeks(String year, List<String> weeks);


    /**
     * 生成月计划接口JSON
     *
     * @param orderList 待发送CIR
     * @return JSON
     */
    String generateSapJson(List<OtdOrderCir> orderList);



    /**
     * SAP反馈，更新状态
     * @param planNo 生产计划号
     * @param sapNo SAP单号
     * @param sapState SAP状态
     * @param errorInfo 异常信息
     */
    void updateIfPlanBySapBack(String planNo, String sapNo, String sapState, String errorInfo);
}
